////////////////////////////////////////////////////////////////////////////////
// Filename: gameobject.hpp
////////////////////////////////////////////////////////////////////////////////
#ifndef GAME_OBJECT_HPP_
#define GAME_OBJECT_HPP_

//////////////
// INCLUDES //
//////////////
#include "window.hpp"
#include "input.hpp"

////////////////////////////////////////////////////////////////////////////////
// Class name: GameObject
////////////////////////////////////////////////////////////////////////////////
class GameObject {
public:
	GameObject(LPCSTR);
	~GameObject();

	bool Initialize();
	void Shutdown();

	int GetWidth();
	int GetHeight();
	HWND GetHandle();
	MarkIV::System::Input* GetInput();
	bool VSyncEnabled();
	bool FullscreenEnabled();

	void SetResolution(int, int);
	void SetVSync(bool);
	void SetFullscreen(bool);

private:
	bool m_vsync;
	bool m_fullscreen;
	Window* m_window;
	LPCSTR m_applicationName;
};

#endif
